feat: Enforce Python 3.8+ requirement and add multi-version CI testing#440
Closed
Iamrodos wants to merge 3 commits intojosegonzalez:masterfrom
Closed
feat: Enforce Python 3.8+ requirement and add multi-version CI testing#440Iamrodos wants to merge 3 commits intojosegonzalez:masterfrom
Iamrodos wants to merge 3 commits intojosegonzalez:masterfrom
Conversation
Adds new --attachments flag that downloads user-uploaded files from issue and PR bodies and comments. Key features: - Determines attachment URLs - Tracks downloads in manifest.json with metadata - Supports --skip-existing to avoid re-downloading - Handles filename collisions with counter suffix - Smart retry logic for transient vs permanent failures - Uses Content-Disposition for correct file extensions
- Add python_requires=">=3.8" to setup.py to enforce minimum version at install time - Update README to explicitly document Python 3.8+ requirement - Add CI matrix to test lint/build on Python 3.8-3.14 (7 versions) - Aligns with actual usage patterns (~99% of downloads on Python 3.8+) - Prevents future PRs from inadvertently using incompatible syntax This change protects users by preventing installation on unsupported Python versions and ensures contributors can see version requirements clearly.
Contributor
Author
|
Closing this PR in favor of #441 - rebased onto clean upstream/master to exclude unrelated attachment feature commits. The Python version requirement changes are identical. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR aligns Python version requirements across documentation, packaging, and CI to prevent compatibility issues and make requirements explicit for contributors.
Changes
python_requires=">=3.8"to enforce minimum version at pip install timeRationale
This project already declares Python 3.8-3.12 support via setup.py classifiers, but this requirement was not enforced or tested. This PR makes that declaration official and enforceable.
Why Python 3.8+ specifically:
Historical context:
.format()strings and could technically support Python 3.0+The gap this fixes:
Without explicit enforcement and CI testing, contributors could easily introduce incompatible syntax:
Common Python features that require newer versions:
f"hello {name}"- Already in codebase:=(PEP 572) -if (n := len(a)) > 10:|(PEP 584) -d1 | d2[](PEP 585) -list[int]instead ofList[int]X | Y(PEP 604) -def foo(x: int | str):These features are increasingly common in modern Python code. Without CI testing on all supported versions, a PR using these features could pass code review and break users on older Python versions.
Impact
Benefits
Drawbacks
Testing
python_requiresis a standard setuptools feature used by thousands of packagesThank you for reviewing and considering this change.